#include <stdio.h>
#include <mysql/mysql.h>

#define HOST "127.0.0.1"
#define PORT 3306
#define USER "tmp"
#define PASS " "
#define DATE "http_test"

int main()
{
    // 初始化句斌
    //MYSQL *mysql = mysql_init(MYSQL* mysql);
    MYSQL *mysql = mysql_init(NULL);
    if (mysql == NULL)
    {
        printf("mysql init failed\n");
        return -1;
    }

    // 连接服务器
    if (mysql_real_connect(mysql, HOST, USER, PASS, DATE, PORT, NULL, 0) == NULL)
    {
        printf("mysql connect error:%s\n", mysql_error(mysql));
        mysql_close(mysql);
        return -1;
    }

    // 设置字符集
    if (mysql_set_character_set(mysql, "utf8") != 0)
    {
        printf("set character error:%s\n", mysql_error(mysql));
        mysql_close(mysql);
        return -1;
    }

    // 选择数据库
    //mysql_select_db(mysql, DATE);
    // 执行sql语句
    // const char *sql = "insert into user values(8, '张三', '123'), (9, '李四', '123');";
    // int ret = mysql_query(mysql, sql);
    // if (ret != 0) 
    // {
    //     printf("mysql query error:%s\n", mysql_error(mysql));
    // }

    const char *sql = "select * from user";
    int ret = mysql_query(mysql, sql);
    if (ret != 0) 
    {
        printf("mysql query error:%s\n", mysql_error(mysql));
    }

    // 如果sql是查询，将结果保存到本地
    MYSQL_RES *res = mysql_store_result(mysql);
    if (res == NULL)
    {
        mysql_close(mysql);
        return -1;
    }
    // 获取条数
    int row = mysql_num_rows(res);
    int col = mysql_num_fields(res);
    // 遍历保存
    for (int i = 0; i < row; i++)
    {
        MYSQL_ROW row = mysql_fetch_row(res);
        for (int j = 0; j < col; j++)
        {
            printf("%s\t", row[j]);
        }
        printf("\n");
    }
    // 释放结果集
    mysql_free_result(res);
    // 关闭句柄
    mysql_close(mysql);
}